/*
 * Ext JS Library 2.2.1
 * Copyright(c) 2006-2009, Ext JS, LLC.
 * licensing@extjs.com
 * 
 * http://extjs.com/license
 */

function formEst(){

var campoFecha=new Ext.form.DateField({
                        id: 'Fecha',
                        fieldLabel: 'Fecha',    
                        format: 'd/m/Y',                  //<---- Format d/m/Y, Y-m-d, y-m-d ... 
                        value: new Date('01/01/2009'),    //<---- Value to initialize 
                        minValue: '01/01/2009',           //<---- The minimum allowed date
                        maxValue: '01/04/2009',           //<---- The maximum allowed date
                        allowBlank: false
                        //anchor : '32%'
                    });
var campoPeriodo=   new Ext.form.ComboBox({
                        fieldLabel: 'Periodo',
                        hiddenName:'tiempo',
                        readOnly:true,
                        store:new Ext.data.SimpleStore({
                                 id:0
                                ,fields:['tiempo', 'periodo']
                                ,data:[['dia', 'Día'],['semana', 'Semana'],['mes', 'Mes']]
                             }),
                        valueField:'tiempo',
                        displayField:'periodo',
                        typeAhead: false,
                        mode:'local',
                        triggerAction: 'all',
                        emptyText:'Seleccione periodo...',
                        selectOnFocus:true,
                        width:190
                    });
var campoTipo=   new Ext.form.ComboBox({
                        fieldLabel: 'Modo',
                        hiddenName:'modoInfo',
                        readOnly:true,
                        store:new Ext.data.SimpleStore({
                                 id:0
                                ,fields:['modo', 'modoInformacion']
                                ,data:[['1', 'Global (la media de todas las plazas)'],
                                       ['0', 'Individualizado (las estadísticas de cada plaza)']] 
                             }),
                        valueField:'modo',
                        displayField:'modoInformacion',
                        typeAhead: false,
                        mode:'local',
                        triggerAction: 'all',
                        emptyText:'Seleccione modo...',
                        selectOnFocus:true,
                        width: 315
                    });
var campoEstadistica= new Ext.form.ComboBox({
                        fieldLabel: 'Tipo Estadistica',
                        hiddenName:'est',
                        readOnly:true,
                        store:new Ext.data.SimpleStore({
                                 id:0
                                ,fields:['tipoEst', 't_estadistica']
                                ,data:[['ocup', 'Tasa ocupación'],
                                       ['tserv', 'Tiempo medio duración estacionamiento'],
                                       ['tesp', 'Tiempo medio duración plaza libre']] 
                             }),
                        valueField:'tipoEst',
                        displayField:'t_estadistica',
                        typeAhead: false,
                        mode:'local',
                        triggerAction: 'all',
                        emptyText:'Seleccione estadística...',
                        selectOnFocus:true,
                        width:260
                       
                    });
    Ext.QuickTips.init();

    // turn on validation errors beside the field globally
    Ext.form.Field.prototype.msgTarget = 'side';

    var fs = new Ext.FormPanel({
        frame: true,
        title:'Opciones',
        labelAlign: 'right',
        maxLength:250,
        labelWidth: 150,
        width:500,
        waitMsgTarget: true,
        items: [
                new Ext.form.FieldSet({
                    title: 'Opciones para estadísticas',
                    autoHeight: true,
                    autoWidth:true,
                    defaultType: 'textfield',
                    items:[
                            campoEstadistica,
                            campoPeriodo,
                            campoTipo,
                            campoFecha
                           ]
                    })
                ]
    });

    // explicit add
    var submit = fs.addButton({
        text: 'Consulta!',
        disabled:false,
        handler: function(){
            this.disable();
            
            switch(campoEstadistica.getValue()){
                
                  case 'ocup':      
                        var fecha=campoFecha.getValue().format('Y/m/d');
                        var hora=' 00:00:00';
                        var oTipo= campoPeriodo.getValue();
                        var oGlobal= campoTipo.getValue();
                        var urla='http://localhost/web/php/calculo_est.php?opt='+oTipo+'&fecha='+fecha+hora+'&global='+oGlobal;
                        
                        fs.getForm().load({url:urla,
                                           waitMsg:'Petición en curso...',
                                           method:"get",
                                           success: function(form,action){
                                                 //alert(action.response.responseText);
                                                 pintaOcup(Ext.util.JSON.decode(action.response.responseText),fecha,oTipo,oGlobal);  
                                           },
                                           failure: function(form,action){
                                                //alert(action.response.responseText);
                                                pintaOcup(Ext.util.JSON.decode(action.response.responseText),fecha,oTipo,oGlobal);  
                                           }
                                           }); 
                        break;
                case 'tserv':
                    /*tmedio(campoFecha.getValue().format('Y/m/d'),
                    campoPeriodo.getValue(),campoTipo.getValue(), 1);*/
                    var fecha=campoFecha.getValue().format('Y/m/d');
                    var hora=' 00:00';
                    var oTipo=campoPeriodo.getValue();
                    var oModo=1;
                    var oGlobal=campoTipo.getValue();

                    var urla='http://localhost/web/php/tiempoServicio.php?opt='+oTipo+
                             '&fecha='+fecha+hora+'&modo='+oModo+'&global='+oGlobal;
                             //'http://localhost/web/php/retardo.php?t=1'
                    fs.getForm().load({url:urla,
                                       waitMsg:'En curso...',
                                       method:"get",
                                       success: function(form,action){
                                                   alert(action.response.responseText);
                                                   pintaTmedio(Ext.util.JSON.decode(action.response.responseText),campoFecha.getValue().format('Y/m/d'),
                                                               campoPeriodo.getValue(),campoTipo.getValue(), oGlobal);
                                                        },
                                       failure: function(form,action){
                                                   //alert(action.response.responseText);
                                                   pintaTmedio(Ext.util.JSON.decode(action.response.responseText),campoFecha.getValue().format('Y/m/d'),
                                                   campoPeriodo.getValue(),campoTipo.getValue(), oGlobal);
                                                }
                                            });
                    break;
                case 'tesp':
                    /*tmedio(campoFecha.getValue().format('Y/m/d'),
                    campoPeriodo.getValue(),campoTipo.getValue(), 1);*/
                    var fecha=campoFecha.getValue().format('Y/m/d');
                    var hora=' 00:00';
                    var oTipo=campoPeriodo.getValue();
                    var oModo=0;
                    var oGlobal=campoTipo.getValue();

                    var urla='http://localhost/web/php/tiempoServicio.php?opt='+oTipo+
                             '&fecha='+fecha+hora+'&modo='+oModo+'&global='+oGlobal;
                             //'http://localhost/web/php/retardo.php?t=1'
                    fs.getForm().load({url:urla,
                                       waitMsg:'En curso...',
                                       method:"get",
                                       success: function(form,action){
                                                   pintaTmedio(Ext.util.JSON.decode(action.response.responseText),campoFecha.getValue().format('Y/m/d'),
                                                   campoPeriodo.getValue(),campoTipo.getValue(), oGlobal);
                                                        },
                                       failure: function(form,action){
                                                   //alert(action.response.responseText);
                                                   pintaTmedio(Ext.util.JSON.decode(action.response.responseText),campoFecha.getValue().format('Y/m/d'),
                                                   campoPeriodo.getValue(),campoTipo.getValue(), oGlobal);
                                                }
                                            });
                    break;
                default:
                    break;
            }

            //alert(campoEstadistica.getValue()+" "+campoPeriodo.getValue()+" "+
            //      campoTipo.getValue()+" "+campoFecha.getValue().format('d/m/Y'));
            //fs.getForm().submit({url:'xml-errors.xml', waitMsg:'Saving Data...'});
        }
    });

    fs.render('form-ct');

    fs.on({actioncomplete: function(form, action){
            if(action.type == 'load'){
               /* alert('termina');*/
                //submit.enable();
            }
           },
           actionfailed:function(form,action){
            if(action.type == 'load'){
                //alert(resonse.responseText);
                submit.enable();
            }
        } 
     
    });
}